/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.VentaFacturacion;

/**
 * @author Jorge
 */
public interface IServicioVentaFacturacion {

    public ResultadoServicio guardarVentaFacturacion(VentaFacturacion ventaFacturacion);

    public ResultadoServicio actualizarVentaFacturacion(VentaFacturacion ventaFacturacion);

    public List<VentaFacturacion> obtenerVentaFacturacionBusqueda(VentaFacturacion ventaFacturacion, Date fechadel, Date fechaal) throws ServiceException;

    public List<VentaFacturacion> listarFacturacionTipo(Integer tipo) throws ServiceException;

    public List<VentaFacturacion> listarFacturacionPendientes(
            Integer tipo, Integer formapago, Integer idCliente, Character estado, Integer idSede) throws ServiceException;

    public List<VentaFacturacion> listarTodos() throws ServiceException;

    public int obtenerIdMonedaFacturacion(Integer idVentaFacturacion) throws ServiceException;

    public int obtenerIdFormaPagoFacturacion(Integer idVentaFacturacion) throws ServiceException;

    public int obtenerIdMotivoTrasladoFacturacion(Integer idVentaFacturacion) throws ServiceException;

    public int obtenerIdTipoDocumento(Integer idVentaFacturacion) throws ServiceException;

    public void eliminarDetalleFactura(Integer idVentaFacturacion) throws ServiceException;

    public VentaFacturacion obtenerFacturacion(Integer idVentaFacturacion) throws ServiceException;

    public List<VentaFacturacion> obtenerFacturasRV(String inicio, String fin, Integer idSede) throws ServiceException;

    public boolean esNumeroDocCorrecta(VentaFacturacion ventaFacturacion) throws ServiceException;

    public List<VentaFacturacion> obtenerGuiasParaFactura(VentaFacturacion ventaFacturacion) throws ServiceException;

    public List<VentaFacturacion> obtenerFacturasExportacionReporte(VentaFacturacion ventaFacturacion) throws ServiceException;

    public List<VentaFacturacion> obtenerGuiasDeFactura(int idVentaFacturacion) throws ServiceException;
    
    public Collection<VentaFacturacion> obtenerGuiasPorSerie(VentaFacturacion ventaFacturacion, Date fechaInicio, Date fechaFinal, int idEmpresa) throws ServiceException;
    
    public Collection<VentaFacturacion> obtenerFacturasVentaParaLetras(VentaFacturacion ventaFacturacion) throws ServiceException;
    
    public Collection<VentaFacturacion> obtenerVentaFacturacion(VentaFacturacion ventaFacturacion) throws ServiceException;
    
    public void cancelarFactura(VentaFacturacion ventaFacturacion) throws ServiceException;
}
